This invention relates to systems and methods for wireless communications and networking.
There exists in the art a number of methods of determining the location of a mobile terminal in a wireless network environment. Some of these methods are terminal-based, while others are network-based. As an example of a terminal-based method, a terminal could contain Global Positioning System (GPS) hardware which allows it to determine its location using the established system of satellites equipped with radio transmitters and atomic clocks. The terminal could then serve the determined location information to requesting parties, terminals, applications, web services, and the like. As an example of a network based method, time of arrival (TOA) measurements could be computed from access bursts generated by a mobile and used to determine the position of a terminal. The use of TOA, enhanced observed time difference (E-TOD), and the like to determine terminal location is noted in the Third Generation Partnership Project (3GPP)""s Location Services (LCS) specification documents TS 23.071 and TS 23.271, included here by reference. As still another example, a terminal could contain Bluetooth hardware which allows it to determine its location by communicating with Bluetooth beacons in the vicinity of the terminal.
Currently, the technique used to request location information is dependent upon the location determining method that will answer the request. Accordingly, an application or web service, for example, would have to use one technique and/or API (application program interface) to request location information from a terminal equipped with GPS hardware and a second technique to request location information from an LCS server.
Moreover, the location determining methods available to a requester can vary with certain factors such as time of day, atmospheric conditions, and available hardware in the network and in the terminal. For example, a mobile may sometimes be in a wireless network which offers LCS but at other times roam to a wireless network which does not.
This reality can create difficulties for designers of applications and services which make use of location information. Applications and services designed to access only certain sources of location information would fail if those sources were not available. For example, suppose an application was designed such that the only technique for accessing location data implemented was one for requesting GPS location data from a terminal. Such an application would not be able to get access to location information if it were used by a terminal which did not have GPS hardware. Ironically, under such circumstances the location based application would not be able to operate properly even if another location determining source, such an LCS server were available.
Application designers might try to get around this problem by building their applications and web services with the ability to access the location information provided by a number of location determining sources. However, such a solution is not ideal. One problem with this solution is that, as described above, different request techniques (such as making calls to different API""s) are necessary for requesting location information from different sources. Therefore, allowing access to different location determining sources adds to application size and complexity. Keeping application size small is particularly important in a wireless network environment where transmission bandwidth is often expensive and/or limited, and the memory and/or storage of terminals is often small compared to that found in desktop machines. Furthermore, it may be difficult for developers to choose which location request techniques to include. Developers might be tempted to not include in their programs calls to all available terminal location API""s in order to cut down on program size and complexity. However, this would be at the expense of users who would not be able to use the application and/or web service because the location determination method available to them was not supported by the application and/or web service.
Additionally, programs and/or web services designed to include multiple location access techniques would also ideally need to include program code to intelligently choose among the various techniques. Such additional program code would further add to program size while making the design more complicated.
Accordingly, there is a need for a system and method whereby a local application may interface with a single API and be automatically connected to the appropriate source of terminal location information. Similarly, there is a need for a system and method whereby a remote application and/or web service may interface with a single API and be automatically connected to the appropriate source of terminal location information. Ideally, such a system and method would intelligently choose a source of terminal location information for a requesting application or web service based on factors such as the availability and/or appropriateness of each source.
Another issue relevant to applications and web services which make use of location data is one of security and privacy. There are no doubt great benefits to applications and/or web services that make use of location data. For example, having location data allows a web service to provide interactive step-by-step driving directions to a user. However, the potential for abuse of location data by applications and web services exists. Therefore, many users long for control over where location information concerning their terminals is transmitted. To have this control, a user must be able to make sure all sources of location information comply with his wishes concerning privacy.
Therefore, there exists a need for a system and method whereby a user could specify his privacy preferences to one database and be assured that his preferences would be adhered to by all location providing sources, thereby allowing the user to exact direct control over which applications and web services have access to data concerning the location of his mobile.
In one embodiment of the invention there is provided a system and method whereby a local application may interface with a single API and be automatically connected to the appropriate source of terminal location information. In another embodiment of the invention there is provided a system and method whereby a remote application and/or web service may interface with a single API and be automatically connected to the appropriate source of terminal location information. In another embodiment of the invention there is provided a system and method whereby a user can specify his privacy preferences to one database and be assured that his preferences would be adhered to by all location providing sources, thereby allowing the user to exact direct control over which applications and web services have access to data concerning the location of his mobile.